package com.wyz.note.project.demo;

import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileInputStream;
import java.util.*;

/**
 * @Description: 表格工具测试类
 * @author: wei yz
 * @Date: 2024/1/28 10:27
 */
public class ExcelTest3 {


    public static void main(String[] args) {
        try {
            FileInputStream fis = new FileInputStream("D:\\test\\java\\test.xlsx");
            XSSFWorkbook xssfWorkbook = new XSSFWorkbook(fis);
            // 获取第一个工作表
            XSSFSheet xssfSheet = xssfWorkbook.getSheetAt(0);
            // 遍历工作表的每一行
            Map<String, List<ExcelInfo>> map = new HashMap<>();
            for (int i = 1; i < xssfSheet.getLastRowNum(); i++) {
                Row row = xssfSheet.getRow(i);
                // 一级
                String stringCellValue = row.getCell(0).getStringCellValue();
                if(StringUtils.isNotBlank(stringCellValue) && map.get(stringCellValue).isEmpty()){
                    map.put(stringCellValue,new ArrayList<>());
                    // 解决方法：给 key 打上标记， 如 A-张三, 则表示已经循环完， 如 张三-1， 则表示还在循环中， 为空则，查询整个map, 结束上一个的循环
                }
                ExcelInfo excelInfo = new ExcelInfo();
                // 遍历行中的每一个单元格
                for (Cell cell : row) {
                    switch (cell.getCellType()) {
                        case STRING:
                            init(row,cell,excelInfo,map);
                            System.out.print(cell.getStringCellValue() + "\t");
                            break;
                        case NUMERIC:
                            System.out.print(cell.getNumericCellValue() + "\t");
                            break;
                        case BOOLEAN:
                            System.out.print(cell.getBooleanCellValue() + "\t");
                            break;
                        default:
                            System.out.print("-\t");
                    }
                }
                System.out.println("");
            }
            xssfWorkbook.close();
            fis.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private static void init(Row row,Cell cell,ExcelInfo excelInfo,Map<String, List<ExcelInfo>> map){

    }

}
